﻿#pragma once
#include "ADFGlobal.h"
#include "AsTableModelRow.h"
#include "AsDefine.h"

AS_MEMBER_CLASS_DECLARATION(AsPluginTableModelRow);

class ADF_EXPORT AsPluginTableModelRow : public AsTableModelRow {
public:
	AsPluginTableModelRow();
	virtual ~AsPluginTableModelRow();

private:
	AS_MEMBER_CLASS(AsPluginTableModelRow)* d_ptr;

public:
	// 释放图片资源
	void releaseMats();	
	// 保存及释放图片资源
	void saveAndReleaseMats(QString qsDir);	
	// 设置原数据存放路径
	void setOriginFilePath(QString filepath);
	// 获取原数据存放路径
	QString getOriginFilePath();
	// 获取原数据存放路径
	QString getOriginFileName();
	// 获取结果文件存放路径
	QString getResultFilePath();
	// 获取缓存文件存放路径
	QStringList getTempFilePath();
	// 获取结果Mat
	cv::Mat getResultMat();
	// 获取缓存Mat
	QVector<cv::Mat> getTempMats();

	//设置结果Mat和中间过程Mat
	void setResultAndTempMat(const cv::Mat& rstMat, const std::vector<cv::Mat>& vTempMat);	//已废弃
	void setResultAndTempMat(const cv::Mat& rstMat, const QVector<cv::Mat>& vTempMat);

	//设置时长
	void setElapseTime(int time);
	int getElapseTime();

	//设置结果
	void setResult(int iResult);
	int getResult();
};

class ADF_EXPORT AsTestSimpleTableModelRow :public AsPluginTableModelRow
{
public:		
	virtual QStringList getFields()override;
	virtual QVariantList getValueList()override;
};